home *** CD-ROM | disk | FTP | other *** search
/ Chip 2007 January, February, March & April / Chip-Cover-CD-2007-02.iso / Pakiet bezpieczenstwa / mini Pentoo LiveCD 2006.1 / mpentoo-2006.1.iso / modules / nessus-2.2.8.mo / usr / lib / nessus / plugins / jrun_getdir.nasl < prev    next >
Text File  |  2005-03-31  |  3KB  |  116 lines

  1. #
  2. # This script was written by Felix Huber <huberfelix@webtopia.de>
  3. #
  4. # Script audit and contributions from Carmichael Security <http://www.carmichaelsecurity.com>
  5. #      Erik Anderson <eanders@carmichaelsecurity.com>
  6. #      Added BugtraqID
  7. #
  8. # v. 1.00 (last update 28.11.01)
  9. #
  10.  
  11. if(description)
  12. {
  13.  script_id(10814);
  14.  script_bugtraq_id(3592);
  15.  script_version ("$Revision: 1.11 $");
  16.  name["english"] = "Allaire JRun directory browsing vulnerability";
  17.  script_name(english:name["english"]);
  18.  
  19.  desc["english"] = "
  20. Allaire JRun 3.0/3.1 under a Microsoft IIS 4.0/5.0 platform has a
  21. problem handling malformed URLs. This allows a remote user to browse
  22. the file system under the web root (normally \inetpub\wwwroot).
  23.  
  24. Under Windows NT/2000(any service pack) and IIS 4.0/5.0:
  25. - JRun 3.0 (all editions)
  26. - JRun 3.1 (all editions)
  27.  
  28.  
  29. Upon sending a specially formed request to the web server, containing
  30. a '.jsp' extension makes the JRun handle the request. Example:
  31.  
  32. http://www.victim.com/%3f.jsp
  33.  
  34. This vulnerability allows anyone with remote access to the web server
  35. to browse it and any directory within the web root.
  36.  
  37. Solution:
  38. >From Macromedia Product Security Bulletin (MPSB01-13)
  39. http://www.allaire.com/handlers/index.cfm?ID=22236&Method=Full
  40.  
  41. Macromedia recommends, as a best practice, turning off directory 
  42. browsing for the JRun Default Server in the following applications: 
  43.  
  44. - Default Application (the application with '/' mapping that causes
  45.   the security problem) 
  46.  
  47. - Demo Application 
  48.   Also, make sure any newly created web application that uses the '/'
  49.   mapping has directory browsing off.
  50.  
  51. The changes that need to be made in the JRun Management Console or JMC:
  52.  
  53. - JRun Default Server/Web Applications/Default User Application/File
  54.   Settings/Directory Browsing Allowed set to FALSE.   
  55. - JRun Default Server/Web Applications/JRun Demo/File Settings/
  56.   Directory Browsing Allowed set to FALSE.   
  57.  
  58. Restart the servers after making the changes and the %3f.jsp request
  59. should now return a 403 forbidden. When this bug is fixed, the request
  60. (regardless of directory browsing setting) should return a '404 page
  61. not found'. 
  62.  
  63. The directory browsing property is called [file.browsedirs]. Changing
  64. the property via the JMC will cause the following changes:
  65. JRun 3.0 will write [file.browsedirs=false] in the local.properties
  66. file. (server-wide change)
  67. JRun 3.1 will write [file.browsedirs=false] in the webapp.properties
  68. of the application. 
  69.  
  70.  
  71. Risk factor : Medium";
  72.  
  73.  
  74.  script_description(english:desc["english"]);
  75.  
  76.  summary["english"] = "Allaire JRun directory browsing vulnerability";
  77.  
  78.  script_summary(english:summary["english"]);
  79.  
  80.  script_category(ACT_GATHER_INFO);
  81.  
  82.  
  83.  script_copyright(english:"This script is Copyright (C) 2001 Felix Huber");
  84.  family["english"] = "CGI abuses";
  85.  script_family(english:family["english"]);
  86.  script_dependencie("find_service.nes", "no404.nasl");
  87.  script_require_ports("Services/www", 80);
  88.  exit(0);
  89. }
  90.  
  91. #
  92. # The script code starts here
  93. #
  94.  
  95. include("http_func.inc");
  96.  
  97. port = get_http_port(default:80);
  98.  
  99. if(get_port_state(port))
  100. {
  101. req = http_get(item:"/%3f.jsp", port:port);
  102. soc = http_open_socket(port);
  103. if(soc)
  104. {
  105.  send(socket:soc, data:req);
  106.  r = http_recv(socket:soc);
  107.  http_close_socket(soc);
  108.  if(("Index of /" >< r)||
  109.     ("Directory Listing" >< r)){
  110.     security_warning(port);
  111.     exit(0);
  112.     }
  113.  
  114.  }
  115. }
  116.